﻿package mortal.game.scene3D.map3D.sceneInfo
{
    import Message.Public.*;
    import flash.geom.*;
    import flash.utils.*;
    import mortal.game.model.*;

    public class SceneInfoParser extends Object
    {
        private var _totalWidth:int;
        private var _totalHeight:int;

        public function SceneInfoParser(param1:int, param2:int)
        {
            this._totalWidth = param1;
            this._totalHeight = param2;
            return;
        }// end function

        public function readShadowList(param1:Object) : Array
        {
            var _loc_4:int = 0;
            var _loc_5:Object = null;
            var _loc_6:ShadowAreaInfo = null;
            var _loc_2:Array = [];
            var _loc_3:* = param1["shadowList"];
            if (_loc_3 != null)
            {
                _loc_4 = 0;
                while (_loc_4 < _loc_3.length)
                {
                    
                    _loc_5 = _loc_3[_loc_4];
                    _loc_6 = new ShadowAreaInfo();
                    _loc_6.x = _loc_5["x"];
                    _loc_6.y = _loc_5["y"];
                    _loc_6.width = _loc_5["width"];
                    _loc_6.heiht = _loc_5["height"];
                    _loc_6.picName = _loc_5["picName"];
                    _loc_6.isOverEffect = _loc_5["isOverEffect"];
                    _loc_2.push(_loc_6);
                    _loc_4++;
                }
            }
            return _loc_2;
        }// end function

        public function readMusic(param1:Object) : Array
        {
            var _loc_4:int = 0;
            var _loc_5:Object = null;
            var _loc_6:MusicAreaInfo = null;
            var _loc_2:Array = [];
            var _loc_3:* = param1["musicAreas"];
            if (_loc_3 != null)
            {
                _loc_4 = 0;
                while (_loc_4 < _loc_3.length)
                {
                    
                    _loc_5 = _loc_3[_loc_4];
                    _loc_6 = new MusicAreaInfo();
                    _loc_6.point.x = _loc_5["x"];
                    _loc_6.point.y = _loc_5["y"];
                    _loc_6.r1 = _loc_5["r1"];
                    _loc_6.r2 = _loc_5["r2"];
                    _loc_6.url = _loc_5["url"];
                    _loc_2.push(_loc_6);
                    _loc_4++;
                }
            }
            return _loc_2;
        }// end function

        public function readXLight(param1:Object) : Array
        {
            var _loc_4:int = 0;
            var _loc_5:Array = null;
            var _loc_6:Array = null;
            var _loc_7:int = 0;
            var _loc_8:Object = null;
            var _loc_9:Point = null;
            var _loc_2:Array = [];
            var _loc_3:* = param1["xLightList"];
            if (_loc_3 != null)
            {
                _loc_4 = 0;
                while (_loc_4 < _loc_3.length)
                {
                    
                    _loc_5 = _loc_3[_loc_4] as Array;
                    _loc_6 = [];
                    _loc_7 = 0;
                    while (_loc_7 < _loc_5.length)
                    {
                        
                        _loc_8 = _loc_5[_loc_7];
                        _loc_9 = new Point();
                        _loc_9.x = _loc_8["x"];
                        _loc_9.y = _loc_8["y"];
                        _loc_6.push(_loc_9);
                        _loc_7++;
                    }
                    _loc_2.push(_loc_6);
                    _loc_4++;
                }
            }
            return _loc_2;
        }// end function

        public function readSceneViewTimes(param1:Object) : int
        {
            return int(param1["sceneViewTimes"]);
        }// end function

        public function fromObj(param1:Object) : SMapDefine
        {
            var _loc_2:int = 0;
            var _loc_3:int = 0;
            var _loc_4:* = new SMapDefine();
            _loc_4.mapId = param1.mapId;
            _loc_4.name = param1.name;
            _loc_4.realWidth = this._totalWidth;
            _loc_4.realHeight = this._totalHeight;
            _loc_4.instanceType = new EMapInstanceType(param1.instanceType);
            _loc_4.clientFile = param1.clientFile;
            _loc_4.serverFile = param1.serverFile;
            _loc_4.ownerType = new EMapOwnerType(param1.ownerType);
            _loc_4.belong = new EMapBelong(param1.belong);
            _loc_4.fightMode = param1.hasOwnProperty("fightMode") ? (param1["fightMode"]) : (0);
            _loc_4.needLevel = param1.hasOwnProperty("needLevel") ? (param1["needLevel"]) : (0);
            _loc_4.enterMode = param1.hasOwnProperty("enterMode") ? (param1["enterMode"]) : (0);
            _loc_4.enterPoint = new SPoint();
            _loc_4.enterPoint.x = param1.hasOwnProperty("enterPoint") ? (param1["enterPoint"].x) : (0);
            _loc_4.enterPoint.y = param1.hasOwnProperty("enterPoint") ? (param1["enterPoint"].y) : (0);
            _loc_4.subline = param1.hasOwnProperty("subline") ? (param1["subline"]) : (false);
            _loc_4.cross = param1.hasOwnProperty("cross") ? (param1["cross"]) : (false);
            _loc_4.restrictionType = param1.hasOwnProperty("restrictionType") ? (param1["restrictionType"]) : (0);
            _loc_4.revivalRestriction = param1.hasOwnProperty("revivalRestriction") ? (this.toDictionary(param1["revivalRestriction"])) : (new Dictionary());
            _loc_4.revivalMaps = param1.hasOwnProperty("revivalMaps") ? (this.toDictionary(param1["revivalMaps"])) : (new Dictionary());
            _loc_4.passPoints = this.passPoints(param1.passPoints as Array);
            _loc_4.npcs = this.npcs(param1.npcs as Array);
            _loc_4.sharps = this.sharps(param1["sharps"]);
            _loc_4.weather = param1.weather;
            _loc_4.musicId = param1.musicId;
            _loc_4.deathEvents = this.deathEvents(param1["deathEvents"] as Array);
            _loc_4.taxRate = param1.hasOwnProperty("taxRate") ? (param1["taxRate"]) : (100);
            _loc_4.jumpPointSeq = this.jumpPointSeq(param1["jumpPointSeq"] as Array);
            _loc_4.areas = this.areas(param1.areas);
            _loc_4.defaultBossPoint = param1.hasOwnProperty("defaultBossPoint") ? (param1["defaultBossPoint"]) : (false);
            var _loc_5:* = new SPoint();
            _loc_5.x = param1.hasOwnProperty("bossPoint") ? (param1["bossPoint"].x) : (0);
            _loc_5.y = param1.hasOwnProperty("bossPoint") ? (param1["bossPoint"].y) : (0);
            _loc_4.bossPoint = _loc_5;
            _loc_4.showLimit = param1["showLimit"];
            return _loc_4;
        }// end function

        public function resetToMapId(param1:SMapDefine, param2:int) : void
        {
            var _loc_4:SPassPoint = null;
            var _loc_6:SMapArea = null;
            var _loc_7:SNpc = null;
            param1.mapId = param2;
            var _loc_3:* = param1.passPoints.length;
            var _loc_5:int = 0;
            while (_loc_5 < _loc_3)
            {
                
                _loc_4 = param1.passPoints[_loc_5] as SPassPoint;
                _loc_4.mapId = param2;
                _loc_5++;
            }
            _loc_3 = param1.npcs.length;
            _loc_5 = 0;
            while (_loc_5 < _loc_3)
            {
                
                _loc_7 = param1.npcs[_loc_5] as SNpc;
                _loc_7.mapId = param2;
                _loc_5++;
            }
            _loc_3 = param1.areas.length;
            _loc_5 = 0;
            while (_loc_5 < _loc_3)
            {
                
                _loc_6 = param1.areas[_loc_5] as SMapArea;
                _loc_6.mapId = param2;
                _loc_5++;
            }
            return;
        }// end function

        public function toObject(param1:SMapDefine, param2:Array = null, param3:Array = null, param4:Array = null, param5:int = 0) : Object
        {
            var _loc_6:* = new Object();
            _loc_6.mapId = param1.mapId;
            _loc_6.name = param1.name;
            _loc_6.realWidth = param1.realWidth;
            _loc_6.realHeight = param1.realHeight;
            _loc_6.instanceType = param1.instanceType ? (param1.instanceType.value()) : (0);
            _loc_6.clientFile = param1.clientFile;
            _loc_6.serverFile = param1.serverFile;
            _loc_6.ownerType = param1.ownerType ? (param1.ownerType.value()) : (0);
            _loc_6.belong = param1.belong ? (param1.belong.value()) : (0);
            _loc_6.fightMode = param1.fightMode;
            _loc_6.needLevel = param1.needLevel;
            _loc_6.enterMode = param1.enterMode;
            if (param1.enterPoint != null)
            {
                _loc_6.enterPoint = {x:param1.enterPoint.x, y:param1.enterPoint.y};
            }
            else
            {
                _loc_6.enterPoint = {x:0, y:0};
            }
            _loc_6.subline = param1.subline;
            _loc_6.cross = param1.cross;
            _loc_6.restrictionType = param1.restrictionType;
            _loc_6.revivalRestriction = param1.revivalRestriction;
            _loc_6.revivalMaps = param1.revivalMaps;
            _loc_6.passPoints = this.getPassPoints(param1);
            _loc_6.npcs = this.getNpcs(param1);
            _loc_6.sharps = this.getSharps(param1);
            _loc_6.weather = param1.weather;
            _loc_6.musicId = param1.musicId;
            _loc_6.deathEvents = this.getDeathEvents(param1);
            _loc_6.taxRate = param1.taxRate;
            _loc_6.jumpPointSeq = this.getJumpPoints(param1);
            _loc_6.areas = this.getAreas(param1);
            _loc_6.defaultBossPoint = param1.defaultBossPoint;
            _loc_6.bossPoint = param1.bossPoint ? ({x:param1.bossPoint.x, y:param1.bossPoint.y}) : ({x:0, y:0});
            _loc_6.showLimit = param1.showLimit;
            _loc_6.shadowList = this.shadowListObj(param2);
            _loc_6.xLightList = this.xLightListObj(param3);
            _loc_6.musicAreas = this.toMusicAreasObj(param4);
            _loc_6.sceneViewTimes = param5;
            return _loc_6;
        }// end function

        public function toDictionary(param1:Object) : Dictionary
        {
            var _loc_3:String = null;
            var _loc_2:* = new Dictionary();
            for (_loc_3 in param1)
            {
                
                _loc_2[_loc_3] = param1[_loc_3];
            }
            return _loc_2;
        }// end function

        public function shadowListObj(param1:Array) : Array
        {
            var _loc_3:int = 0;
            var _loc_4:Object = null;
            var _loc_5:ShadowAreaInfo = null;
            var _loc_2:Array = [];
            if (param1 != null)
            {
                _loc_3 = 0;
                while (_loc_3 < param1.length)
                {
                    
                    _loc_4 = {};
                    _loc_5 = param1[_loc_3] as ShadowAreaInfo;
                    _loc_4["x"] = _loc_5.x;
                    _loc_4["y"] = _loc_5.y;
                    _loc_4["width"] = _loc_5.width;
                    _loc_4["height"] = _loc_5.heiht;
                    _loc_4["picName"] = _loc_5.picName;
                    _loc_4["isOverEffect"] = _loc_5.isOverEffect;
                    _loc_2.push(_loc_4);
                    _loc_3++;
                }
            }
            return _loc_2;
        }// end function

        public function toMusicAreasObj(param1:Array) : Array
        {
            var _loc_3:int = 0;
            var _loc_4:MusicAreaInfo = null;
            var _loc_5:Object = null;
            var _loc_2:Array = [];
            if (param1 != null)
            {
                _loc_3 = 0;
                while (_loc_3 < param1.length)
                {
                    
                    _loc_4 = param1[_loc_3];
                    _loc_5 = {};
                    _loc_5.x = _loc_4.point.x;
                    _loc_5.y = _loc_4.point.y;
                    _loc_5.r1 = _loc_4.r1;
                    _loc_5.r2 = _loc_4.r2;
                    _loc_5.url = _loc_4.url;
                    _loc_2.push(_loc_5);
                    _loc_3++;
                }
            }
            return _loc_2;
        }// end function

        public function xLightListObj(param1:Array) : Array
        {
            var _loc_3:int = 0;
            var _loc_4:Array = null;
            var _loc_5:Array = null;
            var _loc_6:int = 0;
            var _loc_7:Point = null;
            var _loc_8:Object = null;
            var _loc_2:Array = [];
            if (param1 != null)
            {
                _loc_3 = 0;
                while (_loc_3 < param1.length)
                {
                    
                    _loc_4 = param1[_loc_3] as Array;
                    _loc_5 = [];
                    _loc_6 = 0;
                    while (_loc_6 < _loc_4.length)
                    {
                        
                        _loc_7 = _loc_4[_loc_6];
                        _loc_8 = {};
                        _loc_8["x"] = _loc_7.x;
                        _loc_8["y"] = _loc_7.y;
                        _loc_5.push(_loc_8);
                        _loc_6++;
                    }
                    _loc_2.push(_loc_5);
                    _loc_3++;
                }
            }
            return _loc_2;
        }// end function

        public function passPoints(param1:Array) : Array
        {
            var _loc_3:Object = null;
            var _loc_5:SPassPoint = null;
            var _loc_2:Array = [];
            var _loc_4:int = 0;
            while (_loc_4 < param1.length)
            {
                
                _loc_3 = param1[_loc_4];
                _loc_5 = new SPassPoint();
                _loc_5.mapId = _loc_3.mapId;
                _loc_5.name = _loc_3.name;
                _loc_5.passPointId = _loc_3.passPointId;
                _loc_5.process = _loc_3.process ? (_loc_3.process) : (0);
                _loc_5.type = _loc_3.type ? (_loc_3.type) : (0);
                _loc_5.effectName = _loc_3["effectName"];
                if (_loc_5.hasOwnProperty("mapPassRes"))
                {
                    _loc_5["mapPassRes"] = _loc_3.mapPassRes;
                }
                _loc_5.point = new SPoint();
                _loc_5.point.x = _loc_3.point.x;
                _loc_5.point.y = _loc_3.point.y;
                _loc_5.passTo = this.readArrToPasstos(_loc_3.passTo as Array);
                _loc_2.push(_loc_5);
                _loc_4++;
            }
            return _loc_2;
        }// end function

        public function readArrToPasstos(param1:Array) : Array
        {
            var _loc_3:Object = null;
            var _loc_5:SPassTo = null;
            var _loc_2:* = new Array();
            var _loc_4:int = 0;
            while (_loc_4 < param1.length)
            {
                
                _loc_3 = param1[_loc_4];
                _loc_5 = new SPassTo();
                _loc_5.mapId = _loc_3.mapId;
                _loc_5.name = _loc_3.name;
                _loc_5.passToId = _loc_3.passToId;
                _loc_5.toPoint = new SPoint();
                _loc_5.toPoint.x = _loc_3.toPoint.x;
                _loc_5.toPoint.y = _loc_3.toPoint.y;
                _loc_2.push(_loc_5);
                _loc_4++;
            }
            return _loc_2;
        }// end function

        public function npcs(param1:Array) : Array
        {
            var _loc_3:Object = null;
            var _loc_5:SNpc = null;
            var _loc_2:Array = [];
            var _loc_4:int = 0;
            while (_loc_4 < param1.length)
            {
                
                _loc_3 = param1[_loc_4];
                _loc_5 = new SNpc();
                _loc_5.mapId = _loc_3.mapId;
                _loc_5.name = _loc_3.name;
                _loc_5.npcId = _loc_3.npcId;
                if (_loc_3.hasOwnProperty("npcType"))
                {
                    _loc_5.npcType = new ENpcType(_loc_3.npcType);
                }
                else
                {
                    _loc_5.npcType = new ENpcType(0);
                }
                if (_loc_3.hasOwnProperty("notShowInMap"))
                {
                    _loc_5.notShowInMap = _loc_3.notShowInMap;
                }
                else
                {
                    _loc_5.notShowInMap = 0;
                }
                _loc_5.point = new SPoint();
                _loc_5.point.x = _loc_3.point.x;
                _loc_5.point.y = _loc_3.point.y;
                _loc_5.relPoint = new SPoint();
                if (_loc_3.hasOwnProperty("relPoint"))
                {
                    _loc_5.relPoint.x = _loc_3.relPoint.x;
                    _loc_5.relPoint.y = _loc_3.relPoint.y;
                }
                else
                {
                    _loc_5.relPoint.x = _loc_5.point.x;
                    _loc_5.relPoint.y = _loc_5.point.y;
                }
                _loc_5.passTo = this.readArrToPasstos(_loc_3.passTo as Array);
                _loc_2.push(_loc_5);
                _loc_4++;
            }
            return _loc_2;
        }// end function

        public function areas(param1:Array) : Array
        {
            var _loc_3:Object = null;
            var _loc_5:SMapArea = null;
            var _loc_2:Array = [];
            if (param1 == null)
            {
                return _loc_2;
            }
            var _loc_4:int = 0;
            while (_loc_4 < param1.length)
            {
                
                _loc_3 = param1[_loc_4];
                _loc_5 = new SMapArea();
                _loc_5.areaId = _loc_3.areaId;
                _loc_5.mapId = _loc_3.mapId;
                _loc_5.name = _loc_3.name;
                _loc_5.plans = _loc_3.plans;
                _loc_5.point = new SPoint();
                _loc_5.point.x = _loc_3.point.x;
                _loc_5.point.y = _loc_3.point.y;
                _loc_2.push(_loc_5);
                _loc_4++;
            }
            return _loc_2;
        }// end function

        public function sharps(param1:Array) : Array
        {
            var _loc_3:Object = null;
            var _loc_4:Array = null;
            var _loc_5:SPoint = null;
            var _loc_7:SMapSharp = null;
            var _loc_8:int = 0;
            var _loc_2:Array = [];
            if (param1 == null)
            {
                return _loc_2;
            }
            var _loc_6:int = 0;
            while (_loc_6 < param1.length)
            {
                
                _loc_3 = param1[_loc_6];
                _loc_7 = new SMapSharp();
                _loc_7.sharpId = _loc_3.sharpId;
                _loc_7.type = new EMapPointType(_loc_3.type);
                _loc_7.points = new Array();
                _loc_4 = _loc_3.points as Array;
                _loc_8 = 0;
                while (_loc_8 < _loc_4.length)
                {
                    
                    _loc_5 = new SPoint();
                    _loc_5.x = _loc_4[_loc_8].x;
                    _loc_5.y = _loc_4[_loc_8].y;
                    _loc_7.points.push(_loc_5);
                    _loc_8++;
                }
                _loc_2.push(_loc_7);
                _loc_6++;
            }
            return _loc_2;
        }// end function

        public function deathEvents(param1:Array) : Array
        {
            var _loc_4:Object = null;
            var _loc_5:SMapDeathEvent = null;
            var _loc_2:Array = [];
            if (param1 == null)
            {
                return _loc_2;
            }
            var _loc_3:int = 0;
            while (_loc_3 < param1.length)
            {
                
                _loc_4 = param1[_loc_3];
                _loc_5 = new SMapDeathEvent();
                _loc_5.event = _loc_4["event"];
                _loc_5.lower = _loc_4["lower"];
                _loc_5.type = _loc_4["type"];
                _loc_5.upper = _loc_4["upper"];
                _loc_5.value = _loc_4["value"];
                _loc_2.push(_loc_5);
                _loc_3++;
            }
            return _loc_2;
        }// end function

        public function jumpPointSeq(param1:Array) : Array
        {
            var _loc_4:Array = null;
            var _loc_5:Array = null;
            var _loc_6:int = 0;
            var _loc_7:Object = null;
            var _loc_8:SPoint = null;
            var _loc_2:Array = [];
            if (param1 == null)
            {
                return _loc_2;
            }
            var _loc_3:int = 0;
            while (_loc_3 < param1.length)
            {
                
                _loc_4 = param1[_loc_3] as Array;
                _loc_5 = [];
                _loc_6 = 0;
                while (_loc_6 < _loc_4.length)
                {
                    
                    _loc_7 = _loc_4[_loc_6];
                    _loc_8 = new SPoint();
                    _loc_8.x = _loc_7["x"];
                    _loc_8.y = _loc_7["y"];
                    _loc_5.push(_loc_8);
                    _loc_6++;
                }
                _loc_2[_loc_3] = _loc_5;
                _loc_3++;
            }
            return _loc_2;
        }// end function

        private function getDeathEvents(param1:SMapDefine) : Array
        {
            var _loc_3:Object = null;
            var _loc_4:SMapDeathEvent = null;
            var _loc_2:Array = [];
            for each (_loc_4 in param1.deathEvents)
            {
                
                _loc_3 = {};
                _loc_3["type"] = _loc_4.type;
                _loc_3["event"] = _loc_4.event;
                _loc_3["lower"] = _loc_4.lower;
                _loc_3["upper"] = _loc_4.upper;
                _loc_3["value"] = _loc_4.value;
                _loc_2.push(_loc_3);
            }
            return _loc_2;
        }// end function

        private function getPassPoints(param1:SMapDefine) : Array
        {
            var _loc_4:Object = null;
            var _loc_5:SPassPoint = null;
            var _loc_7:Array = null;
            var _loc_8:SPassTo = null;
            var _loc_9:Object = null;
            var _loc_10:int = 0;
            var _loc_2:* = new Array();
            var _loc_3:* = param1.passPoints.length;
            var _loc_6:int = 0;
            while (_loc_6 < _loc_3)
            {
                
                _loc_5 = param1.passPoints[_loc_6] as SPassPoint;
                _loc_4 = {};
                _loc_4.passPointId = _loc_5.passPointId;
                _loc_4.mapId = _loc_5.mapId;
                _loc_4.name = _loc_5.name;
                _loc_4.process = _loc_5.process;
                _loc_4.type = _loc_5.type;
                _loc_4.effectName = _loc_5.effectName;
                if (_loc_5.hasOwnProperty("mapPassRes"))
                {
                    _loc_4.mapPassRes = _loc_5["mapPassRes"];
                }
                _loc_4.point = {x:_loc_5.point.x, y:_loc_5.point.y};
                _loc_7 = new Array();
                _loc_10 = 0;
                while (_loc_10 < _loc_5.passTo.length)
                {
                    
                    _loc_8 = _loc_5.passTo[_loc_10] as SPassTo;
                    _loc_9 = {};
                    _loc_9.mapId = _loc_8.mapId;
                    _loc_9.name = _loc_8.name;
                    _loc_9.passToId = _loc_8.passToId;
                    _loc_9.toPoint = {x:_loc_8.toPoint.x, y:_loc_8.toPoint.y};
                    _loc_7.push(_loc_9);
                    _loc_10++;
                }
                _loc_4.passTo = _loc_7;
                _loc_2.push(_loc_4);
                _loc_6++;
            }
            return _loc_2;
        }// end function

        private function getNpcs(param1:SMapDefine) : Array
        {
            var _loc_3:Object = null;
            var _loc_4:SNpc = null;
            var _loc_7:Array = null;
            var _loc_8:SPassTo = null;
            var _loc_9:Object = null;
            var _loc_10:int = 0;
            var _loc_2:* = new Array();
            var _loc_5:* = param1.npcs.length;
            var _loc_6:int = 0;
            while (_loc_6 < _loc_5)
            {
                
                _loc_4 = param1.npcs[_loc_6] as SNpc;
                _loc_3 = {};
                _loc_3.mapId = _loc_4.mapId;
                _loc_3.name = _loc_4.name;
                _loc_3.npcId = _loc_4.npcId;
                _loc_3.npcType = _loc_4.npcType.value();
                _loc_3.notShowInMap = _loc_4.notShowInMap;
                _loc_3.point = {x:_loc_4.point.x, y:_loc_4.point.y};
                _loc_3.relPoint = {x:_loc_4.relPoint.x, y:_loc_4.relPoint.y};
                _loc_7 = new Array();
                _loc_10 = 0;
                while (_loc_10 < _loc_4.passTo.length)
                {
                    
                    _loc_8 = _loc_4.passTo[_loc_10] as SPassTo;
                    _loc_9 = {};
                    _loc_9.mapId = _loc_8.mapId;
                    _loc_9.name = _loc_8.name;
                    _loc_9.passToId = _loc_8.passToId;
                    _loc_9.toPoint = {x:_loc_8.toPoint.x, y:_loc_8.toPoint.y};
                    _loc_7.push(_loc_9);
                    _loc_10++;
                }
                _loc_3.passTo = _loc_7;
                _loc_2.push(_loc_3);
                _loc_6++;
            }
            return _loc_2;
        }// end function

        private function getJumpPoints(param1:SMapDefine) : Array
        {
            var _loc_5:Array = null;
            var _loc_6:Array = null;
            var _loc_7:int = 0;
            var _loc_8:SPoint = null;
            var _loc_2:* = param1.jumpPointSeq.length;
            var _loc_3:Array = [];
            var _loc_4:int = 0;
            while (_loc_4 < _loc_2)
            {
                
                _loc_5 = [];
                _loc_3[_loc_4] = _loc_5;
                _loc_6 = param1.jumpPointSeq[_loc_4];
                _loc_7 = 0;
                while (_loc_7 < _loc_6.length)
                {
                    
                    _loc_8 = _loc_6[_loc_7];
                    _loc_5.push({x:_loc_8.x, y:_loc_8.y});
                    _loc_7++;
                }
                _loc_4++;
            }
            return _loc_3;
        }// end function

        private function getAreas(param1:SMapDefine) : Array
        {
            var _loc_3:Object = null;
            var _loc_4:SMapArea = null;
            var _loc_2:* = new Array();
            var _loc_5:* = param1.areas.length;
            var _loc_6:int = 0;
            while (_loc_6 < _loc_5)
            {
                
                _loc_4 = param1.areas[_loc_6] as SMapArea;
                _loc_3 = {};
                _loc_3.areaId = _loc_4.areaId;
                _loc_3.mapId = _loc_4.mapId;
                _loc_3.name = _loc_4.name;
                _loc_3.plans = _loc_4.plans;
                _loc_3.point = {x:_loc_4.point.x, y:_loc_4.point.y};
                _loc_2.push(_loc_3);
                _loc_6++;
            }
            return _loc_2;
        }// end function

        private function getSharps(param1:SMapDefine) : Array
        {
            var _loc_3:Array = null;
            var _loc_4:SPoint = null;
            var _loc_5:Object = null;
            var _loc_6:SMapSharp = null;
            var _loc_9:int = 0;
            var _loc_2:* = new Array();
            var _loc_7:* = param1.sharps.length;
            var _loc_8:int = 0;
            while (_loc_8 < _loc_7)
            {
                
                _loc_6 = param1.sharps[_loc_8] as SMapSharp;
                _loc_5 = {};
                _loc_5.sharpId = _loc_6.sharpId;
                _loc_5.type = _loc_6.type.value();
                _loc_3 = new Array();
                if (_loc_6.points)
                {
                    _loc_9 = 0;
                    while (_loc_9 < _loc_6.points.length)
                    {
                        
                        _loc_4 = _loc_6.points[_loc_9] as SPoint;
                        _loc_3.push({x:_loc_4.x, y:_loc_4.y});
                        _loc_9++;
                    }
                }
                _loc_5.points = _loc_3;
                _loc_2.push(_loc_5);
                _loc_8++;
            }
            return _loc_2;
        }// end function

    }
}
